package nl.rug.discomm.udr.modelcheck;



import nl.rug.discomm.udr.chart.IntegerChart;
import nl.rug.discomm.udr.graph.Chain;

import org._3pq.jgrapht.Edge;

import de.saar.chorus.domgraph.graph.DomGraph;
import de.saar.chorus.domgraph.graph.EdgeData;
import de.saar.chorus.domgraph.graph.EdgeType;
import de.saar.chorus.domgraph.graph.NodeData;
import de.saar.chorus.domgraph.graph.NodeLabels;
import de.saar.chorus.domgraph.graph.NodeType;
import de.saar.chorus.ubench.Ubench;

public class ModelCheckTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
	/*	Ubench u = Ubench.getInstance();
		Chain graph = new Chain(4);
		NodeLabels labels = graph.getStandardLabels();
		//makeChain4(graph,labels);
		u.addJDomGraphTab("chain4", graph, labels);
		System.err.println(labels);
		
		graph.addDominanceEdge("2xl", "1x");
		graph.addDominanceEdge("4xl", "2x");
		IntegerChart chart1 = new IntegerChart(4);
		chart1.solve();
		chart1.addDominanceEdges(graph.getAdditionalEdges());
		
		Chain subsumed = new Chain(4);
		NodeLabels sflabels = subsumed.getStandardLabels();
		subsumed.addDominanceEdge("2xl", "1x");
		subsumed.addDominanceEdge("3xr", "4x");
		IntegerChart chart2 = new IntegerChart(4);
		chart2.solve();
		chart2.addDominanceEdges(subsumed.getAdditionalEdges());
		
		//DomGraph solvedForm = new DomGraph();
		//NodeLabels sflabels = new NodeLabels();
		//makeGoodSolvedForm(solvedForm,sflabels);
		u.addJDomGraphTab("subsumed graph", subsumed, sflabels);
		
	/*	DomGraph sf2 = new DomGraph();
		NodeLabels sf2l = new NodeLabels();
		makeBadSolvedForm(sf2,sf2l);
		u.addJDomGraphTab("bad solved form", sf2, sf2l);*/
		
	
		
		
		
		
		
		Chain biggraph =  new Chain(100);
		NodeLabels biglabels = new NodeLabels();
		for(String node : biggraph.getAllNodes()) {
			if(! biggraph.isHole(node)) {
				if(! biggraph.isLeaf(node)) {
					biglabels.addLabel(node,"f50");
				} else {
					biglabels.addLabel(node, "a" + node.substring(0, node.length() - 1));
					
				}
			}
		}
		
/*		Chain anothergraph = new Chain(100);
		NodeLabels secLabels = new NodeLabels();
		for(String node : anothergraph.getAllNodes()) {
			if(! anothergraph.isHole(node)) {
				if(! anothergraph.isLeaf(node)) {
					secLabels.addLabel(node,"f50");
				} else {
					secLabels.addLabel(node, "a" + node.substring(0, node.length() - 1));
					
				}
			}
		}
		
		System.err.println("Generated Graphs...");
		
		
		IntegerChart chart1 = new IntegerChart(100);
		chart1.solve();
		System.err.println("Solved chart 1...");
		
		IntegerChart chart2 = new IntegerChart(100);
		chart2.solve();
		System.err.println("Solved chart2...");
		
		chart2.addDominanceEdge(2, 65);
		chart2.addDominanceEdge(99, 70);
		
		System.err.println("Added dominance edges...");
		
		long time = System.currentTimeMillis();
		System.err.println(IntModelCheck.subsumes(chart1, biglabels, chart2, secLabels));
		System.err.println("Took " + (System.currentTimeMillis() - time) + " ms.");*/
		
	//	makeChain100(biggraph, biglabels);

		DomGraph bigsf = new DomGraph();
		NodeLabels bigsflabels = new NodeLabels();
		makeSolvedForm100(bigsf, bigsflabels);
		System.err.println("Generated Solved Form");
	//	Ubench u = Ubench.getInstance();
	//	 u.addJDomGraphTab("sf", bigsf, bigsflabels);
		
		long before = System.currentTimeMillis();
		
		System.err.println(IntModelCheck.solves(bigsf, bigsflabels, biggraph, biglabels));
		
		System.err.println("Needed " + (System.currentTimeMillis() - before) + "ms");
		
	/*	System.out.println(IntModelCheck.solves(solvedForm, sflabels, graph, labels));
	
		System.err.println();
		System.err.println("====");
		System.err.println();
		
		System.out.println(IntModelCheck.solves(sf2, sf2l, graph, labels));*/
		
		
	}
	
	public static void makeChain100(DomGraph graph, NodeLabels labels) {
	      graph.clear();
	        labels.clear();

	        graph.addNode("y0", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y0", "a0");
	        graph.addNode("x1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x1", "f50");
	        graph.addNode("xl1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y1", "a1");
	        graph.addNode("x2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x2", "f50");
	        graph.addNode("xl2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y2", "a2");
	        graph.addNode("x3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x3", "f50");
	        graph.addNode("xl3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y3", "a3");
	        graph.addNode("x4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x4", "f50");
	        graph.addNode("xl4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y4", "a4");
	        graph.addNode("x5", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x5", "f50");
	        graph.addNode("xl5", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr5", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y5", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y5", "a5");
	        graph.addNode("x6", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x6", "f50");
	        graph.addNode("xl6", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr6", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y6", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y6", "a6");
	        graph.addNode("x7", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x7", "f50");
	        graph.addNode("xl7", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr7", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y7", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y7", "a7");
	        graph.addNode("x8", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x8", "f50");
	        graph.addNode("xl8", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr8", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y8", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y8", "a8");
	        graph.addNode("x9", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x9", "f50");
	        graph.addNode("xl9", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr9", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y9", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y9", "a9");
	        graph.addNode("x10", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x10", "f50");
	        graph.addNode("xl10", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr10", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y10", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y10", "a10");
	        graph.addNode("x11", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x11", "f50");
	        graph.addNode("xl11", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr11", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y11", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y11", "a11");
	        graph.addNode("x12", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x12", "f50");
	        graph.addNode("xl12", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr12", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y12", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y12", "a12");
	        graph.addNode("x13", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x13", "f50");
	        graph.addNode("xl13", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr13", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y13", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y13", "a13");
	        graph.addNode("x14", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x14", "f50");
	        graph.addNode("xl14", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr14", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y14", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y14", "a14");
	        graph.addNode("x15", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x15", "f50");
	        graph.addNode("xl15", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr15", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y15", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y15", "a15");
	        graph.addNode("x16", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x16", "f50");
	        graph.addNode("xl16", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr16", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y16", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y16", "a16");
	        graph.addNode("x17", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x17", "f50");
	        graph.addNode("xl17", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr17", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y17", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y17", "a17");
	        graph.addNode("x18", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x18", "f50");
	        graph.addNode("xl18", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr18", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y18", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y18", "a18");
	        graph.addNode("x19", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x19", "f50");
	        graph.addNode("xl19", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr19", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y19", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y19", "a19");
	        graph.addNode("x20", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x20", "f50");
	        graph.addNode("xl20", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr20", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y20", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y20", "a20");
	        graph.addNode("x21", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x21", "f50");
	        graph.addNode("xl21", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr21", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y21", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y21", "a21");
	        graph.addNode("x22", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x22", "f50");
	        graph.addNode("xl22", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr22", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y22", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y22", "a22");
	        graph.addNode("x23", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x23", "f50");
	        graph.addNode("xl23", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr23", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y23", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y23", "a23");
	        graph.addNode("x24", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x24", "f50");
	        graph.addNode("xl24", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr24", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y24", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y24", "a24");
	        graph.addNode("x25", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x25", "f50");
	        graph.addNode("xl25", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr25", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y25", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y25", "a25");
	        graph.addNode("x26", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x26", "f50");
	        graph.addNode("xl26", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr26", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y26", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y26", "a26");
	        graph.addNode("x27", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x27", "f50");
	        graph.addNode("xl27", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr27", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y27", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y27", "a27");
	        graph.addNode("x28", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x28", "f50");
	        graph.addNode("xl28", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr28", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y28", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y28", "a28");
	        graph.addNode("x29", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x29", "f50");
	        graph.addNode("xl29", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr29", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y29", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y29", "a29");
	        graph.addNode("x30", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x30", "f50");
	        graph.addNode("xl30", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr30", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y30", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y30", "a30");
	        graph.addNode("x31", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x31", "f50");
	        graph.addNode("xl31", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr31", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y31", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y31", "a31");
	        graph.addNode("x32", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x32", "f50");
	        graph.addNode("xl32", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr32", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y32", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y32", "a32");
	        graph.addNode("x33", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x33", "f50");
	        graph.addNode("xl33", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr33", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y33", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y33", "a33");
	        graph.addNode("x34", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x34", "f50");
	        graph.addNode("xl34", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr34", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y34", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y34", "a34");
	        graph.addNode("x35", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x35", "f50");
	        graph.addNode("xl35", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr35", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y35", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y35", "a35");
	        graph.addNode("x36", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x36", "f50");
	        graph.addNode("xl36", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr36", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y36", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y36", "a36");
	        graph.addNode("x37", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x37", "f50");
	        graph.addNode("xl37", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr37", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y37", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y37", "a37");
	        graph.addNode("x38", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x38", "f50");
	        graph.addNode("xl38", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr38", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y38", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y38", "a38");
	        graph.addNode("x39", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x39", "f50");
	        graph.addNode("xl39", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr39", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y39", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y39", "a39");
	        graph.addNode("x40", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x40", "f50");
	        graph.addNode("xl40", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr40", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y40", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y40", "a40");
	        graph.addNode("x41", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x41", "f50");
	        graph.addNode("xl41", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr41", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y41", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y41", "a41");
	        graph.addNode("x42", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x42", "f50");
	        graph.addNode("xl42", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr42", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y42", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y42", "a42");
	        graph.addNode("x43", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x43", "f50");
	        graph.addNode("xl43", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr43", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y43", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y43", "a43");
	        graph.addNode("x44", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x44", "f50");
	        graph.addNode("xl44", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr44", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y44", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y44", "a44");
	        graph.addNode("x45", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x45", "f50");
	        graph.addNode("xl45", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr45", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y45", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y45", "a45");
	        graph.addNode("x46", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x46", "f50");
	        graph.addNode("xl46", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr46", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y46", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y46", "a46");
	        graph.addNode("x47", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x47", "f50");
	        graph.addNode("xl47", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr47", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y47", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y47", "a47");
	        graph.addNode("x48", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x48", "f50");
	        graph.addNode("xl48", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr48", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y48", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y48", "a48");
	        graph.addNode("x49", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x49", "f50");
	        graph.addNode("xl49", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr49", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y49", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y49", "a49");
	        graph.addNode("x50", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x50", "f50");
	        graph.addNode("xl50", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr50", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y50", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y50", "a50");
	        graph.addNode("x51", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x51", "f50");
	        graph.addNode("xl51", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr51", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y51", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y51", "a51");
	        graph.addNode("x52", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x52", "f50");
	        graph.addNode("xl52", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr52", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y52", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y52", "a52");
	        graph.addNode("x53", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x53", "f50");
	        graph.addNode("xl53", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr53", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y53", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y53", "a53");
	        graph.addNode("x54", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x54", "f50");
	        graph.addNode("xl54", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr54", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y54", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y54", "a54");
	        graph.addNode("x55", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x55", "f50");
	        graph.addNode("xl55", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr55", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y55", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y55", "a55");
	        graph.addNode("x56", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x56", "f50");
	        graph.addNode("xl56", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr56", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y56", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y56", "a56");
	        graph.addNode("x57", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x57", "f50");
	        graph.addNode("xl57", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr57", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y57", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y57", "a57");
	        graph.addNode("x58", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x58", "f50");
	        graph.addNode("xl58", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr58", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y58", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y58", "a58");
	        graph.addNode("x59", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x59", "f50");
	        graph.addNode("xl59", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr59", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y59", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y59", "a59");
	        graph.addNode("x60", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x60", "f50");
	        graph.addNode("xl60", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr60", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y60", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y60", "a60");
	        graph.addNode("x61", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x61", "f50");
	        graph.addNode("xl61", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr61", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y61", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y61", "a61");
	        graph.addNode("x62", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x62", "f50");
	        graph.addNode("xl62", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr62", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y62", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y62", "a62");
	        graph.addNode("x63", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x63", "f50");
	        graph.addNode("xl63", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr63", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y63", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y63", "a63");
	        graph.addNode("x64", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x64", "f50");
	        graph.addNode("xl64", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr64", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y64", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y64", "a64");
	        graph.addNode("x65", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x65", "f50");
	        graph.addNode("xl65", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr65", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y65", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y65", "a65");
	        graph.addNode("x66", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x66", "f50");
	        graph.addNode("xl66", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr66", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y66", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y66", "a66");
	        graph.addNode("x67", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x67", "f50");
	        graph.addNode("xl67", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr67", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y67", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y67", "a67");
	        graph.addNode("x68", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x68", "f50");
	        graph.addNode("xl68", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr68", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y68", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y68", "a68");
	        graph.addNode("x69", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x69", "f50");
	        graph.addNode("xl69", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr69", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y69", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y69", "a69");
	        graph.addNode("x70", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x70", "f50");
	        graph.addNode("xl70", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr70", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y70", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y70", "a70");
	        graph.addNode("x71", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x71", "f50");
	        graph.addNode("xl71", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr71", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y71", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y71", "a71");
	        graph.addNode("x72", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x72", "f50");
	        graph.addNode("xl72", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr72", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y72", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y72", "a72");
	        graph.addNode("x73", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x73", "f50");
	        graph.addNode("xl73", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr73", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y73", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y73", "a73");
	        graph.addNode("x74", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x74", "f50");
	        graph.addNode("xl74", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr74", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y74", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y74", "a74");
	        graph.addNode("x75", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x75", "f50");
	        graph.addNode("xl75", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr75", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y75", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y75", "a75");
	        graph.addNode("x76", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x76", "f50");
	        graph.addNode("xl76", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr76", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y76", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y76", "a76");
	        graph.addNode("x77", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x77", "f50");
	        graph.addNode("xl77", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr77", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y77", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y77", "a77");
	        graph.addNode("x78", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x78", "f50");
	        graph.addNode("xl78", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr78", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y78", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y78", "a78");
	        graph.addNode("x79", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x79", "f50");
	        graph.addNode("xl79", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr79", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y79", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y79", "a79");
	        graph.addNode("x80", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x80", "f50");
	        graph.addNode("xl80", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr80", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y80", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y80", "a80");
	        graph.addNode("x81", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x81", "f50");
	        graph.addNode("xl81", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr81", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y81", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y81", "a81");
	        graph.addNode("x82", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x82", "f50");
	        graph.addNode("xl82", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr82", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y82", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y82", "a82");
	        graph.addNode("x83", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x83", "f50");
	        graph.addNode("xl83", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr83", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y83", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y83", "a83");
	        graph.addNode("x84", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x84", "f50");
	        graph.addNode("xl84", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr84", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y84", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y84", "a84");
	        graph.addNode("x85", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x85", "f50");
	        graph.addNode("xl85", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr85", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y85", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y85", "a85");
	        graph.addNode("x86", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x86", "f50");
	        graph.addNode("xl86", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr86", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y86", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y86", "a86");
	        graph.addNode("x87", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x87", "f50");
	        graph.addNode("xl87", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr87", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y87", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y87", "a87");
	        graph.addNode("x88", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x88", "f50");
	        graph.addNode("xl88", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr88", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y88", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y88", "a88");
	        graph.addNode("x89", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x89", "f50");
	        graph.addNode("xl89", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr89", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y89", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y89", "a89");
	        graph.addNode("x90", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x90", "f50");
	        graph.addNode("xl90", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr90", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y90", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y90", "a90");
	        graph.addNode("x91", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x91", "f50");
	        graph.addNode("xl91", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr91", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y91", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y91", "a91");
	        graph.addNode("x92", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x92", "f50");
	        graph.addNode("xl92", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr92", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y92", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y92", "a92");
	        graph.addNode("x93", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x93", "f50");
	        graph.addNode("xl93", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr93", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y93", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y93", "a93");
	        graph.addNode("x94", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x94", "f50");
	        graph.addNode("xl94", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr94", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y94", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y94", "a94");
	        graph.addNode("x95", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x95", "f50");
	        graph.addNode("xl95", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr95", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y95", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y95", "a95");
	        graph.addNode("x96", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x96", "f50");
	        graph.addNode("xl96", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr96", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y96", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y96", "a96");
	        graph.addNode("x97", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x97", "f50");
	        graph.addNode("xl97", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr97", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y97", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y97", "a97");
	        graph.addNode("x98", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x98", "f50");
	        graph.addNode("xl98", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr98", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y98", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y98", "a98");
	        graph.addNode("x99", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x99", "f50");
	        graph.addNode("xl99", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr99", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y99", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y99", "a99");
	        graph.addNode("x100", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x100", "f50");
	        graph.addNode("xl100", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr100", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y100", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y100", "a100");

	        graph.addEdge("x1", "xl1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x1", "xr1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl1", "y0", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr1", "y1", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x2", "xl2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x2", "xr2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl2", "y1", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr2", "y2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x3", "xl3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x3", "xr3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl3", "y2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr3", "y3", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x4", "xl4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x4", "xr4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl4", "y3", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr4", "y4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x5", "xl5", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x5", "xr5", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl5", "y4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr5", "y5", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x6", "xl6", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x6", "xr6", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl6", "y5", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr6", "y6", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x7", "xl7", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x7", "xr7", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl7", "y6", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr7", "y7", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x8", "xl8", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x8", "xr8", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl8", "y7", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr8", "y8", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x9", "xl9", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x9", "xr9", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl9", "y8", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr9", "y9", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x10", "xl10", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x10", "xr10", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl10", "y9", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr10", "y10", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x11", "xl11", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x11", "xr11", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl11", "y10", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr11", "y11", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x12", "xl12", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x12", "xr12", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl12", "y11", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr12", "y12", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x13", "xl13", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x13", "xr13", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl13", "y12", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr13", "y13", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x14", "xl14", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x14", "xr14", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl14", "y13", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr14", "y14", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x15", "xl15", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x15", "xr15", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl15", "y14", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr15", "y15", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x16", "xl16", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x16", "xr16", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl16", "y15", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr16", "y16", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x17", "xl17", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x17", "xr17", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl17", "y16", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr17", "y17", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x18", "xl18", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x18", "xr18", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl18", "y17", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr18", "y18", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x19", "xl19", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x19", "xr19", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl19", "y18", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr19", "y19", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x20", "xl20", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x20", "xr20", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl20", "y19", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr20", "y20", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x21", "xl21", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x21", "xr21", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl21", "y20", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr21", "y21", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x22", "xl22", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x22", "xr22", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl22", "y21", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr22", "y22", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x23", "xl23", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x23", "xr23", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl23", "y22", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr23", "y23", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x24", "xl24", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x24", "xr24", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl24", "y23", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr24", "y24", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x25", "xl25", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x25", "xr25", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl25", "y24", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr25", "y25", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x26", "xl26", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x26", "xr26", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl26", "y25", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr26", "y26", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x27", "xl27", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x27", "xr27", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl27", "y26", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr27", "y27", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x28", "xl28", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x28", "xr28", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl28", "y27", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr28", "y28", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x29", "xl29", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x29", "xr29", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl29", "y28", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr29", "y29", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x30", "xl30", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x30", "xr30", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl30", "y29", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr30", "y30", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x31", "xl31", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x31", "xr31", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl31", "y30", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr31", "y31", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x32", "xl32", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x32", "xr32", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl32", "y31", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr32", "y32", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x33", "xl33", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x33", "xr33", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl33", "y32", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr33", "y33", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x34", "xl34", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x34", "xr34", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl34", "y33", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr34", "y34", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x35", "xl35", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x35", "xr35", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl35", "y34", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr35", "y35", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x36", "xl36", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x36", "xr36", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl36", "y35", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr36", "y36", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x37", "xl37", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x37", "xr37", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl37", "y36", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr37", "y37", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x38", "xl38", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x38", "xr38", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl38", "y37", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr38", "y38", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x39", "xl39", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x39", "xr39", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl39", "y38", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr39", "y39", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x40", "xl40", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x40", "xr40", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl40", "y39", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr40", "y40", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x41", "xl41", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x41", "xr41", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl41", "y40", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr41", "y41", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x42", "xl42", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x42", "xr42", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl42", "y41", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr42", "y42", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x43", "xl43", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x43", "xr43", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl43", "y42", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr43", "y43", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x44", "xl44", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x44", "xr44", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl44", "y43", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr44", "y44", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x45", "xl45", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x45", "xr45", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl45", "y44", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr45", "y45", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x46", "xl46", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x46", "xr46", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl46", "y45", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr46", "y46", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x47", "xl47", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x47", "xr47", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl47", "y46", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr47", "y47", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x48", "xl48", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x48", "xr48", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl48", "y47", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr48", "y48", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x49", "xl49", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x49", "xr49", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl49", "y48", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr49", "y49", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x50", "xl50", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x50", "xr50", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl50", "y49", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr50", "y50", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x51", "xl51", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x51", "xr51", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl51", "y50", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr51", "y51", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x52", "xl52", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x52", "xr52", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl52", "y51", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr52", "y52", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x53", "xl53", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x53", "xr53", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl53", "y52", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr53", "y53", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x54", "xl54", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x54", "xr54", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl54", "y53", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr54", "y54", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x55", "xl55", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x55", "xr55", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl55", "y54", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr55", "y55", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x56", "xl56", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x56", "xr56", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl56", "y55", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr56", "y56", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x57", "xl57", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x57", "xr57", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl57", "y56", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr57", "y57", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x58", "xl58", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x58", "xr58", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl58", "y57", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr58", "y58", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x59", "xl59", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x59", "xr59", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl59", "y58", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr59", "y59", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x60", "xl60", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x60", "xr60", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl60", "y59", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr60", "y60", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x61", "xl61", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x61", "xr61", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl61", "y60", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr61", "y61", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x62", "xl62", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x62", "xr62", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl62", "y61", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr62", "y62", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x63", "xl63", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x63", "xr63", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl63", "y62", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr63", "y63", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x64", "xl64", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x64", "xr64", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl64", "y63", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr64", "y64", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x65", "xl65", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x65", "xr65", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl65", "y64", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr65", "y65", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x66", "xl66", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x66", "xr66", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl66", "y65", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr66", "y66", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x67", "xl67", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x67", "xr67", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl67", "y66", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr67", "y67", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x68", "xl68", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x68", "xr68", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl68", "y67", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr68", "y68", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x69", "xl69", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x69", "xr69", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl69", "y68", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr69", "y69", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x70", "xl70", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x70", "xr70", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl70", "y69", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr70", "y70", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x71", "xl71", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x71", "xr71", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl71", "y70", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr71", "y71", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x72", "xl72", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x72", "xr72", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl72", "y71", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr72", "y72", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x73", "xl73", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x73", "xr73", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl73", "y72", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr73", "y73", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x74", "xl74", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x74", "xr74", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl74", "y73", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr74", "y74", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x75", "xl75", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x75", "xr75", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl75", "y74", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr75", "y75", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x76", "xl76", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x76", "xr76", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl76", "y75", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr76", "y76", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x77", "xl77", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x77", "xr77", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl77", "y76", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr77", "y77", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x78", "xl78", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x78", "xr78", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl78", "y77", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr78", "y78", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x79", "xl79", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x79", "xr79", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl79", "y78", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr79", "y79", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x80", "xl80", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x80", "xr80", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl80", "y79", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr80", "y80", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x81", "xl81", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x81", "xr81", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl81", "y80", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr81", "y81", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x82", "xl82", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x82", "xr82", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl82", "y81", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr82", "y82", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x83", "xl83", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x83", "xr83", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl83", "y82", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr83", "y83", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x84", "xl84", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x84", "xr84", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl84", "y83", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr84", "y84", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x85", "xl85", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x85", "xr85", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl85", "y84", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr85", "y85", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x86", "xl86", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x86", "xr86", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl86", "y85", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr86", "y86", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x87", "xl87", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x87", "xr87", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl87", "y86", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr87", "y87", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x88", "xl88", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x88", "xr88", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl88", "y87", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr88", "y88", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x89", "xl89", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x89", "xr89", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl89", "y88", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr89", "y89", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x90", "xl90", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x90", "xr90", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl90", "y89", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr90", "y90", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x91", "xl91", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x91", "xr91", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl91", "y90", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr91", "y91", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x92", "xl92", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x92", "xr92", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl92", "y91", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr92", "y92", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x93", "xl93", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x93", "xr93", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl93", "y92", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr93", "y93", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x94", "xl94", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x94", "xr94", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl94", "y93", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr94", "y94", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x95", "xl95", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x95", "xr95", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl95", "y94", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr95", "y95", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x96", "xl96", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x96", "xr96", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl96", "y95", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr96", "y96", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x97", "xl97", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x97", "xr97", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl97", "y96", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr97", "y97", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x98", "xl98", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x98", "xr98", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl98", "y97", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr98", "y98", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x99", "xl99", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x99", "xr99", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl99", "y98", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr99", "y99", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x100", "xl100", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x100", "xr100", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl100", "y99", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr100", "y100", new EdgeData(EdgeType.DOMINANCE));
	        
	        /*
	         * TODO this is just a reading sign.
	         */
	     //   graph.addEdge("xl50", "x49", new EdgeData(EdgeType.DOMINANCE));
	     //   graph.addEdge("xr50", "x51", new EdgeData(EdgeType.DOMINANCE));
	    
	}
	
	public static void makeSolvedForm100(DomGraph graph, NodeLabels labels) {
	      graph.clear();
	        labels.clear();

	        graph.addNode("y0", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y0", "a0");
	        graph.addNode("x1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x1", "f50");
	        graph.addNode("xl1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y1", "a1");
	        graph.addNode("x2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x2", "f50");
	        graph.addNode("xl2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y2", "a2");
	        graph.addNode("x3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x3", "f50");
	        graph.addNode("xl3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y3", "a3");
	        graph.addNode("x4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x4", "f50");
	        graph.addNode("xl4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y4", "a4");
	        graph.addNode("x5", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x5", "f50");
	        graph.addNode("xl5", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr5", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y5", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y5", "a5");
	        graph.addNode("x6", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x6", "f50");
	        graph.addNode("xl6", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr6", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y6", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y6", "a6");
	        graph.addNode("x7", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x7", "f50");
	        graph.addNode("xl7", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr7", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y7", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y7", "a7");
	        graph.addNode("x8", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x8", "f50");
	        graph.addNode("xl8", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr8", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y8", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y8", "a8");
	        graph.addNode("x9", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x9", "f50");
	        graph.addNode("xl9", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr9", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y9", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y9", "a9");
	        graph.addNode("x10", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x10", "f50");
	        graph.addNode("xl10", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr10", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y10", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y10", "a10");
	        graph.addNode("x11", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x11", "f50");
	        graph.addNode("xl11", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr11", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y11", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y11", "a11");
	        graph.addNode("x12", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x12", "f50");
	        graph.addNode("xl12", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr12", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y12", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y12", "a12");
	        graph.addNode("x13", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x13", "f50");
	        graph.addNode("xl13", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr13", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y13", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y13", "a13");
	        graph.addNode("x14", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x14", "f50");
	        graph.addNode("xl14", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr14", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y14", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y14", "a14");
	        graph.addNode("x15", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x15", "f50");
	        graph.addNode("xl15", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr15", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y15", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y15", "a15");
	        graph.addNode("x16", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x16", "f50");
	        graph.addNode("xl16", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr16", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y16", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y16", "a16");
	        graph.addNode("x17", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x17", "f50");
	        graph.addNode("xl17", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr17", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y17", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y17", "a17");
	        graph.addNode("x18", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x18", "f50");
	        graph.addNode("xl18", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr18", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y18", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y18", "a18");
	        graph.addNode("x19", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x19", "f50");
	        graph.addNode("xl19", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr19", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y19", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y19", "a19");
	        graph.addNode("x20", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x20", "f50");
	        graph.addNode("xl20", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr20", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y20", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y20", "a20");
	        graph.addNode("x21", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x21", "f50");
	        graph.addNode("xl21", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr21", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y21", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y21", "a21");
	        graph.addNode("x22", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x22", "f50");
	        graph.addNode("xl22", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr22", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y22", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y22", "a22");
	        graph.addNode("x23", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x23", "f50");
	        graph.addNode("xl23", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr23", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y23", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y23", "a23");
	        graph.addNode("x24", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x24", "f50");
	        graph.addNode("xl24", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr24", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y24", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y24", "a24");
	        graph.addNode("x25", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x25", "f50");
	        graph.addNode("xl25", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr25", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y25", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y25", "a25");
	        graph.addNode("x26", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x26", "f50");
	        graph.addNode("xl26", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr26", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y26", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y26", "a26");
	        graph.addNode("x27", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x27", "f50");
	        graph.addNode("xl27", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr27", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y27", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y27", "a27");
	        graph.addNode("x28", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x28", "f50");
	        graph.addNode("xl28", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr28", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y28", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y28", "a28");
	        graph.addNode("x29", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x29", "f50");
	        graph.addNode("xl29", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr29", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y29", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y29", "a29");
	        graph.addNode("x30", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x30", "f50");
	        graph.addNode("xl30", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr30", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y30", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y30", "a30");
	        graph.addNode("x31", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x31", "f50");
	        graph.addNode("xl31", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr31", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y31", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y31", "a31");
	        graph.addNode("x32", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x32", "f50");
	        graph.addNode("xl32", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr32", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y32", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y32", "a32");
	        graph.addNode("x33", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x33", "f50");
	        graph.addNode("xl33", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr33", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y33", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y33", "a33");
	        graph.addNode("x34", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x34", "f50");
	        graph.addNode("xl34", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr34", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y34", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y34", "a34");
	        graph.addNode("x35", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x35", "f50");
	        graph.addNode("xl35", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr35", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y35", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y35", "a35");
	        graph.addNode("x36", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x36", "f50");
	        graph.addNode("xl36", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr36", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y36", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y36", "a36");
	        graph.addNode("x37", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x37", "f50");
	        graph.addNode("xl37", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr37", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y37", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y37", "a37");
	        graph.addNode("x38", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x38", "f50");
	        graph.addNode("xl38", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr38", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y38", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y38", "a38");
	        graph.addNode("x39", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x39", "f50");
	        graph.addNode("xl39", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr39", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y39", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y39", "a39");
	        graph.addNode("x40", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x40", "f50");
	        graph.addNode("xl40", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr40", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y40", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y40", "a40");
	        graph.addNode("x41", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x41", "f50");
	        graph.addNode("xl41", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr41", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y41", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y41", "a41");
	        graph.addNode("x42", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x42", "f50");
	        graph.addNode("xl42", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr42", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y42", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y42", "a42");
	        graph.addNode("x43", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x43", "f50");
	        graph.addNode("xl43", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr43", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y43", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y43", "a43");
	        graph.addNode("x44", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x44", "f50");
	        graph.addNode("xl44", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr44", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y44", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y44", "a44");
	        graph.addNode("x45", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x45", "f50");
	        graph.addNode("xl45", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr45", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y45", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y45", "a45");
	        graph.addNode("x46", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x46", "f50");
	        graph.addNode("xl46", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr46", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y46", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y46", "a46");
	        graph.addNode("x47", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x47", "f50");
	        graph.addNode("xl47", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr47", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y47", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y47", "a47");
	        graph.addNode("x48", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x48", "f50");
	        graph.addNode("xl48", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr48", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y48", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y48", "a48");
	        graph.addNode("x49", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x49", "f50");
	        graph.addNode("xl49", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr49", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y49", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y49", "a49");
	        graph.addNode("x50", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x50", "f50");
	        graph.addNode("xl50", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr50", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y50", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y50", "a50");
	        graph.addNode("x51", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x51", "f50");
	        graph.addNode("xl51", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr51", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y51", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y51", "a51");
	        graph.addNode("x52", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x52", "f50");
	        graph.addNode("xl52", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr52", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y52", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y52", "a52");
	        graph.addNode("x53", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x53", "f50");
	        graph.addNode("xl53", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr53", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y53", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y53", "a53");
	        graph.addNode("x54", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x54", "f50");
	        graph.addNode("xl54", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr54", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y54", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y54", "a54");
	        graph.addNode("x55", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x55", "f50");
	        graph.addNode("xl55", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr55", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y55", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y55", "a55");
	        graph.addNode("x56", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x56", "f50");
	        graph.addNode("xl56", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr56", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y56", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y56", "a56");
	        graph.addNode("x57", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x57", "f50");
	        graph.addNode("xl57", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr57", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y57", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y57", "a57");
	        graph.addNode("x58", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x58", "f50");
	        graph.addNode("xl58", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr58", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y58", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y58", "a58");
	        graph.addNode("x59", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x59", "f50");
	        graph.addNode("xl59", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr59", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y59", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y59", "a59");
	        graph.addNode("x60", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x60", "f50");
	        graph.addNode("xl60", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr60", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y60", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y60", "a60");
	        graph.addNode("x61", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x61", "f50");
	        graph.addNode("xl61", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr61", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y61", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y61", "a61");
	        graph.addNode("x62", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x62", "f50");
	        graph.addNode("xl62", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr62", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y62", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y62", "a62");
	        graph.addNode("x63", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x63", "f50");
	        graph.addNode("xl63", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr63", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y63", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y63", "a63");
	        graph.addNode("x64", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x64", "f50");
	        graph.addNode("xl64", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr64", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y64", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y64", "a64");
	        graph.addNode("x65", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x65", "f50");
	        graph.addNode("xl65", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr65", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y65", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y65", "a65");
	        graph.addNode("x66", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x66", "f50");
	        graph.addNode("xl66", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr66", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y66", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y66", "a66");
	        graph.addNode("x67", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x67", "f50");
	        graph.addNode("xl67", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr67", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y67", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y67", "a67");
	        graph.addNode("x68", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x68", "f50");
	        graph.addNode("xl68", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr68", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y68", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y68", "a68");
	        graph.addNode("x69", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x69", "f50");
	        graph.addNode("xl69", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr69", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y69", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y69", "a69");
	        graph.addNode("x70", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x70", "f50");
	        graph.addNode("xl70", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr70", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y70", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y70", "a70");
	        graph.addNode("x71", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x71", "f50");
	        graph.addNode("xl71", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr71", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y71", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y71", "a71");
	        graph.addNode("x72", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x72", "f50");
	        graph.addNode("xl72", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr72", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y72", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y72", "a72");
	        graph.addNode("x73", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x73", "f50");
	        graph.addNode("xl73", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr73", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y73", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y73", "a73");
	        graph.addNode("x74", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x74", "f50");
	        graph.addNode("xl74", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr74", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y74", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y74", "a74");
	        graph.addNode("x75", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x75", "f50");
	        graph.addNode("xl75", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr75", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y75", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y75", "a75");
	        graph.addNode("x76", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x76", "f50");
	        graph.addNode("xl76", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr76", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y76", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y76", "a76");
	        graph.addNode("x77", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x77", "f50");
	        graph.addNode("xl77", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr77", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y77", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y77", "a77");
	        graph.addNode("x78", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x78", "f50");
	        graph.addNode("xl78", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr78", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y78", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y78", "a78");
	        graph.addNode("x79", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x79", "f50");
	        graph.addNode("xl79", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr79", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y79", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y79", "a79");
	        graph.addNode("x80", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x80", "f50");
	        graph.addNode("xl80", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr80", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y80", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y80", "a80");
	        graph.addNode("x81", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x81", "f50");
	        graph.addNode("xl81", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr81", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y81", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y81", "a81");
	        graph.addNode("x82", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x82", "f50");
	        graph.addNode("xl82", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr82", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y82", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y82", "a82");
	        graph.addNode("x83", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x83", "f50");
	        graph.addNode("xl83", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr83", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y83", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y83", "a83");
	        graph.addNode("x84", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x84", "f50");
	        graph.addNode("xl84", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr84", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y84", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y84", "a84");
	        graph.addNode("x85", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x85", "f50");
	        graph.addNode("xl85", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr85", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y85", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y85", "a85");
	        graph.addNode("x86", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x86", "f50");
	        graph.addNode("xl86", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr86", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y86", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y86", "a86");
	        graph.addNode("x87", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x87", "f50");
	        graph.addNode("xl87", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr87", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y87", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y87", "a87");
	        graph.addNode("x88", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x88", "f50");
	        graph.addNode("xl88", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr88", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y88", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y88", "a88");
	        graph.addNode("x89", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x89", "f50");
	        graph.addNode("xl89", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr89", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y89", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y89", "a89");
	        graph.addNode("x90", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x90", "f50");
	        graph.addNode("xl90", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr90", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y90", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y90", "a90");
	        graph.addNode("x91", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x91", "f50");
	        graph.addNode("xl91", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr91", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y91", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y91", "a91");
	        graph.addNode("x92", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x92", "f50");
	        graph.addNode("xl92", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr92", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y92", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y92", "a92");
	        graph.addNode("x93", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x93", "f50");
	        graph.addNode("xl93", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr93", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y93", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y93", "a93");
	        graph.addNode("x94", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x94", "f50");
	        graph.addNode("xl94", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr94", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y94", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y94", "a94");
	        graph.addNode("x95", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x95", "f50");
	        graph.addNode("xl95", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr95", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y95", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y95", "a95");
	        graph.addNode("x96", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x96", "f50");
	        graph.addNode("xl96", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr96", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y96", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y96", "a96");
	        graph.addNode("x97", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x97", "f50");
	        graph.addNode("xl97", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr97", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y97", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y97", "a97");
	        graph.addNode("x98", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x98", "f50");
	        graph.addNode("xl98", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr98", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y98", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y98", "a98");
	        graph.addNode("x99", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x99", "f50");
	        graph.addNode("xl99", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr99", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y99", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y99", "a99");
	        graph.addNode("x100", new NodeData(NodeType.LABELLED));
	        labels.addLabel("x100", "f50");
	        graph.addNode("xl100", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("xr100", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("y100", new NodeData(NodeType.LABELLED));
	        labels.addLabel("y100", "a100");

	        graph.addEdge("x1", "xl1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x1", "xr1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl1", "y0", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr1", "y1", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x2", "xl2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x2", "xr2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl2", "y1", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr2", "y2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x3", "xl3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x3", "xr3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl3", "y2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr3", "y3", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x4", "xl4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x4", "xr4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl4", "y3", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr4", "y4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x5", "xl5", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x5", "xr5", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl5", "y4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr5", "y5", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x6", "xl6", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x6", "xr6", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl6", "y5", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr6", "y6", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x7", "xl7", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x7", "xr7", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl7", "y6", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr7", "y7", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x8", "xl8", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x8", "xr8", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl8", "y7", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr8", "y8", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x9", "xl9", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x9", "xr9", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl9", "y8", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr9", "y9", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x10", "xl10", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x10", "xr10", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl10", "y9", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr10", "y10", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x11", "xl11", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x11", "xr11", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl11", "y10", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr11", "y11", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x12", "xl12", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x12", "xr12", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl12", "y11", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr12", "y12", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x13", "xl13", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x13", "xr13", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl13", "y12", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr13", "y13", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x14", "xl14", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x14", "xr14", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl14", "y13", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr14", "y14", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x15", "xl15", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x15", "xr15", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl15", "y14", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr15", "y15", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x16", "xl16", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x16", "xr16", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl16", "y15", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr16", "y16", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x17", "xl17", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x17", "xr17", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl17", "y16", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr17", "y17", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x18", "xl18", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x18", "xr18", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl18", "y17", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr18", "y18", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x19", "xl19", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x19", "xr19", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl19", "y18", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr19", "y19", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x20", "xl20", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x20", "xr20", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl20", "y19", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr20", "y20", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x21", "xl21", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x21", "xr21", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl21", "y20", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr21", "y21", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x22", "xl22", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x22", "xr22", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl22", "y21", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr22", "y22", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x23", "xl23", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x23", "xr23", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl23", "y22", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr23", "y23", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x24", "xl24", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x24", "xr24", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl24", "y23", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr24", "y24", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x25", "xl25", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x25", "xr25", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl25", "y24", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr25", "y25", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x26", "xl26", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x26", "xr26", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl26", "y25", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr26", "y26", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x27", "xl27", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x27", "xr27", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl27", "y26", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr27", "y27", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x28", "xl28", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x28", "xr28", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl28", "y27", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr28", "y28", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x29", "xl29", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x29", "xr29", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl29", "y28", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr29", "y29", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x30", "xl30", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x30", "xr30", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl30", "y29", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr30", "y30", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x31", "xl31", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x31", "xr31", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl31", "y30", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr31", "y31", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x32", "xl32", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x32", "xr32", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl32", "y31", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr32", "y32", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x33", "xl33", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x33", "xr33", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl33", "y32", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr33", "y33", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x34", "xl34", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x34", "xr34", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl34", "y33", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr34", "y34", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x35", "xl35", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x35", "xr35", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl35", "y34", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr35", "y35", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x36", "xl36", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x36", "xr36", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl36", "y35", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr36", "y36", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x37", "xl37", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x37", "xr37", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl37", "y36", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr37", "y37", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x38", "xl38", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x38", "xr38", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl38", "y37", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr38", "y38", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x39", "xl39", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x39", "xr39", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl39", "y38", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr39", "y39", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x40", "xl40", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x40", "xr40", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl40", "y39", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr40", "y40", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x41", "xl41", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x41", "xr41", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl41", "y40", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr41", "y41", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x42", "xl42", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x42", "xr42", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl42", "y41", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr42", "y42", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x43", "xl43", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x43", "xr43", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl43", "y42", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr43", "y43", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x44", "xl44", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x44", "xr44", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl44", "y43", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr44", "y44", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x45", "xl45", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x45", "xr45", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl45", "y44", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr45", "y45", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x46", "xl46", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x46", "xr46", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl46", "y45", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr46", "y46", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x47", "xl47", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x47", "xr47", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl47", "y46", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr47", "y47", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x48", "xl48", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x48", "xr48", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl48", "y47", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr48", "y48", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x49", "xl49", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x49", "xr49", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl49", "y48", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr49", "y49", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x50", "xl50", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x50", "xr50", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl50", "y49", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr50", "y50", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x51", "xl51", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x51", "xr51", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl51", "y50", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr51", "y51", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x52", "xl52", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x52", "xr52", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl52", "y51", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr52", "y52", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x53", "xl53", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x53", "xr53", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl53", "y52", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr53", "y53", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x54", "xl54", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x54", "xr54", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl54", "y53", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr54", "y54", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x55", "xl55", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x55", "xr55", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl55", "y54", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr55", "y55", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x56", "xl56", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x56", "xr56", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl56", "y55", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr56", "y56", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x57", "xl57", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x57", "xr57", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl57", "y56", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr57", "y57", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x58", "xl58", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x58", "xr58", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl58", "y57", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr58", "y58", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x59", "xl59", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x59", "xr59", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl59", "y58", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr59", "y59", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x60", "xl60", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x60", "xr60", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl60", "y59", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr60", "y60", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x61", "xl61", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x61", "xr61", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl61", "y60", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr61", "y61", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x62", "xl62", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x62", "xr62", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl62", "y61", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr62", "y62", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x63", "xl63", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x63", "xr63", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl63", "y62", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr63", "y63", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x64", "xl64", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x64", "xr64", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl64", "y63", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr64", "y64", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x65", "xl65", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x65", "xr65", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl65", "y64", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr65", "y65", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x66", "xl66", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x66", "xr66", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl66", "y65", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr66", "y66", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x67", "xl67", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x67", "xr67", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl67", "y66", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr67", "y67", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x68", "xl68", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x68", "xr68", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl68", "y67", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr68", "y68", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x69", "xl69", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x69", "xr69", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl69", "y68", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr69", "y69", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x70", "xl70", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x70", "xr70", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl70", "y69", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr70", "y70", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x71", "xl71", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x71", "xr71", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl71", "y70", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr71", "y71", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x72", "xl72", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x72", "xr72", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl72", "y71", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr72", "y72", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x73", "xl73", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x73", "xr73", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl73", "y72", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr73", "y73", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x74", "xl74", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x74", "xr74", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl74", "y73", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr74", "y74", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x75", "xl75", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x75", "xr75", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl75", "y74", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr75", "y75", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x76", "xl76", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x76", "xr76", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl76", "y75", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr76", "y76", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x77", "xl77", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x77", "xr77", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl77", "y76", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr77", "y77", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x78", "xl78", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x78", "xr78", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl78", "y77", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr78", "y78", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x79", "xl79", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x79", "xr79", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl79", "y78", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr79", "y79", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x80", "xl80", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x80", "xr80", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl80", "y79", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr80", "y80", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x81", "xl81", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x81", "xr81", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl81", "y80", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr81", "y81", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x82", "xl82", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x82", "xr82", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl82", "y81", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr82", "y82", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x83", "xl83", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x83", "xr83", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl83", "y82", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr83", "y83", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x84", "xl84", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x84", "xr84", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl84", "y83", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr84", "y84", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x85", "xl85", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x85", "xr85", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl85", "y84", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr85", "y85", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x86", "xl86", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x86", "xr86", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl86", "y85", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr86", "y86", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x87", "xl87", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x87", "xr87", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl87", "y86", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr87", "y87", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x88", "xl88", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x88", "xr88", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl88", "y87", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr88", "y88", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x89", "xl89", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x89", "xr89", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl89", "y88", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr89", "y89", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x90", "xl90", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x90", "xr90", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl90", "y89", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr90", "y90", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x91", "xl91", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x91", "xr91", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl91", "y90", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr91", "y91", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x92", "xl92", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x92", "xr92", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl92", "y91", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr92", "y92", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x93", "xl93", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x93", "xr93", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl93", "y92", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr93", "y93", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x94", "xl94", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x94", "xr94", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl94", "y93", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr94", "y94", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x95", "xl95", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x95", "xr95", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl95", "y94", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr95", "y95", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x96", "xl96", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x96", "xr96", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl96", "y95", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr96", "y96", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x97", "xl97", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x97", "xr97", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl97", "y96", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr97", "y97", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x98", "xl98", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x98", "xr98", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl98", "y97", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr98", "y98", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x99", "xl99", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x99", "xr99", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl99", "y98", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr99", "y99", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("x100", "xl100", new EdgeData(EdgeType.TREE));
	        graph.addEdge("x100", "xr100", new EdgeData(EdgeType.TREE));
	        graph.addEdge("xl100", "y99", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("xr100", "y100", new EdgeData(EdgeType.DOMINANCE));
	        
	        
	        /**
	         * TODO reading sign for the solved form
	         */
	        for(int i = 2; i <= 100; i++) {
	        	for(Edge edge : graph.getAdjacentEdges("xl"+i, EdgeType.DOMINANCE)) {
	        		graph.remove(edge);
	        	}
	        	
	        	graph.addEdge("xl" + i, "x"+(i-1), new EdgeData(EdgeType.DOMINANCE));
	        }
	      /*  for(int i = 37; i < 100; i++) {
	        	for(Edge edge : graph.getAdjacentEdges("xr"+i, EdgeType.DOMINANCE)) {
	        		graph.remove(edge);
	        	}
	        	
	        	graph.addEdge("xr" + i, "x"+(i+1), new EdgeData(EdgeType.DOMINANCE));
	        }*/
	    
	}
	

    public static void makeChain4(DomGraph graph, NodeLabels labels) {
        graph.clear();
        labels.clear();

        graph.addNode("y0", new NodeData(NodeType.LABELLED));
        labels.addLabel("y0", "a0");
        graph.addNode("x1", new NodeData(NodeType.LABELLED));
        labels.addLabel("x1", "f1");
        graph.addNode("xl1", new NodeData(NodeType.UNLABELLED));
        graph.addNode("xr1", new NodeData(NodeType.UNLABELLED));
        graph.addNode("y1", new NodeData(NodeType.LABELLED));
        labels.addLabel("y1", "a1");
        graph.addNode("x2", new NodeData(NodeType.LABELLED));
        labels.addLabel("x2", "f2");
        graph.addNode("xl2", new NodeData(NodeType.UNLABELLED));
        graph.addNode("xr2", new NodeData(NodeType.UNLABELLED));
        graph.addNode("y2", new NodeData(NodeType.LABELLED));
        labels.addLabel("y2", "a2");
        graph.addNode("x3", new NodeData(NodeType.LABELLED));
        labels.addLabel("x3", "f3");
        graph.addNode("xl3", new NodeData(NodeType.UNLABELLED));
        graph.addNode("xr3", new NodeData(NodeType.UNLABELLED));
        graph.addNode("y3", new NodeData(NodeType.LABELLED));
        labels.addLabel("y3", "a3");
        graph.addNode("x4", new NodeData(NodeType.LABELLED));
        labels.addLabel("x4", "f4");
        graph.addNode("xl4", new NodeData(NodeType.UNLABELLED));
        graph.addNode("xr4", new NodeData(NodeType.UNLABELLED));
        graph.addNode("y4", new NodeData(NodeType.LABELLED));
        labels.addLabel("y4", "a4");

        graph.addEdge("x1", "xl1", new EdgeData(EdgeType.TREE));
        graph.addEdge("x1", "xr1", new EdgeData(EdgeType.TREE));
        graph.addEdge("xl1", "y0", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("xr1", "y1", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("x2", "xl2", new EdgeData(EdgeType.TREE));
        graph.addEdge("x2", "xr2", new EdgeData(EdgeType.TREE));
        graph.addEdge("xl2", "y1", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("xr2", "y2", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("x3", "xl3", new EdgeData(EdgeType.TREE));
        graph.addEdge("x3", "xr3", new EdgeData(EdgeType.TREE));
        graph.addEdge("xl3", "y2", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("xr3", "y3", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("x4", "xl4", new EdgeData(EdgeType.TREE));
        graph.addEdge("x4", "xr4", new EdgeData(EdgeType.TREE));
        graph.addEdge("xl4", "y3", new EdgeData(EdgeType.DOMINANCE));
        graph.addEdge("xr4", "y4", new EdgeData(EdgeType.DOMINANCE));
    }

	
	  public static void makeGoodSolvedForm(DomGraph graph, NodeLabels labels) {
		  graph.clear();
	        labels.clear();

	        graph.addNode("z0", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z0", "a0");
	        graph.addNode("v1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v1", "f1");
	        graph.addNode("vl1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z1", "a1");
	        graph.addNode("v2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v2", "f2");
	        graph.addNode("vl2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z2", "a2");
	        graph.addNode("v3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v3", "f3");
	        graph.addNode("vl3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z3", "a3");
	        graph.addNode("v4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v4", "f4");
	        graph.addNode("vl4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z4", "a4");

	        graph.addEdge("v1", "vl1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v1", "vr1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v2", "vl2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v2", "vr2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v3", "vl3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v3", "vr3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v4", "vl4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v4", "vr4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("vl1", "z0", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr1", "v4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr4", "z4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vl4", "v2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vl2", "z1", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr2", "v3", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vl3", "z2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr3", "z3", new EdgeData(EdgeType.DOMINANCE));

	    }
	  
	  
	  public static void makeBadSolvedForm(DomGraph graph, NodeLabels labels) {
		  graph.clear();
	        labels.clear();

	        graph.addNode("z0", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z0", "o0");
	        graph.addNode("v1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v1", "f1");
	        graph.addNode("vl1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr1", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z1", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z1", "n1");
	        graph.addNode("v2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v2", "f2");
	        graph.addNode("vl2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr2", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z2", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z2", "a2");
	        graph.addNode("v3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v3", "f3");
	        graph.addNode("vl3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr3", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z3", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z3", "a3");
	        graph.addNode("v4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("v4", "f4");
	        graph.addNode("vl4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("vr4", new NodeData(NodeType.UNLABELLED));
	        graph.addNode("z4", new NodeData(NodeType.LABELLED));
	        labels.addLabel("z4", "a4");

	        graph.addEdge("v1", "vl1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v1", "vr1", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v2", "vl2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v2", "vr2", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v3", "vl3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v3", "vr3", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v4", "vl4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("v4", "vr4", new EdgeData(EdgeType.TREE));
	        graph.addEdge("vl1", "z0", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr1", "v4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr4", "z4", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vl4", "v2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vl2", "z1", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr2", "v3", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vl3", "z2", new EdgeData(EdgeType.DOMINANCE));
	        graph.addEdge("vr3", "z3", new EdgeData(EdgeType.DOMINANCE));
	        
	        

	    }

}
